package com.manage.function.service;

import java.util.List;
import com.manage.function.domain.FunctionExpense;
import com.manage.function.domain.vo.DeptInfo;
import com.manage.function.domain.vo.Expenditure;

/**
 * 财务支出Service接口
 *
 * @author jinghj
 * @date 2025-03-09
 */
public interface IFunctionExpenseService
{
    /**
     * 查询财务支出
     *
     * @param id 财务支出主键
     * @return 财务支出
     */
    public FunctionExpense selectFunctionExpenseById(Long id);

    /**
     * 查询财务支出列表
     *
     * @param functionExpense 财务支出
     * @return 财务支出集合
     */
    public List<FunctionExpense> selectFunctionExpenseList(FunctionExpense functionExpense);

    /**
     * 新增财务支出
     *
     * @param functionExpense 财务支出
     * @return 结果
     */
    public int insertFunctionExpense(FunctionExpense functionExpense);

    /**
     * 修改财务支出
     *
     * @param functionExpense 财务支出
     * @return 结果
     */
    public int updateFunctionExpense(FunctionExpense functionExpense);

    /**
     * 批量删除财务支出
     *
     * @param ids 需要删除的财务支出主键集合
     * @return 结果
     */
    public int deleteFunctionExpenseByIds(Long[] ids);

    /**
     * 删除财务支出信息
     *
     * @param id 财务支出主键
     * @return 结果
     */
    public int deleteFunctionExpenseById(Long id);

    //查询所有部门名称
    public List<DeptInfo> selectUserAndDept();

    //统计每个部门每月的支出费用
    List<Expenditure> countExpenditure(String month);

}
